import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';

/**
 * JSON 格式化请求 DTO
 */
export class JsonFormatterRequestDto {
  @ApiProperty({
    description: '需要转换为JSON格式的文本内容',
    example: `产品名称：智能手表X1
价格：1299元
功能：
1. 心率监测
2. 血氧检测
3. 睡眠分析
4. 运动追踪
5. 消息提醒
防水等级：IP68
电池续航：7天
颜色选择：黑色、银色、金色`,
  })
  textContent: string;

  /**
   * 可选的模型名称，默认使用 Claude 最新模型
   */
  model?: string;

  /**
   * 可选的最大生成令牌数
   */
  maxTokens?: number;
}

/**
 * JSON 格式化响应 DTO
 {
  "Image_style_name": "萌趣3D动漫工作台风格",
  "Design_style": "整体采用明亮简洁的设计风格，色彩基调以暖色为主，搭配中性色调的工作台场景。卡片结构简单直接，上方为醒目的黑色大标题文字，下方为主体3D卡通人物形象。留白处理适中，主要集中在人物周围，增强视觉焦点。背景采用简约的桌面工作场景，营造学习/工作氛围。整体情感氛围传达出疲惫或无奈的状态，视觉语言一致性强，边框处理简洁无框架设计，让内容自然延展。",
  "Text_typesetting_style": "标题采用大号黑体字，位于画面顶部，分为两段式布局，用逗号自然分隔。段落布局简洁明了，标点符号使用得当，起到情感停顿作用。不使用表情符号，而是通过文字本身传达情感。重点内容通过文字大小和位置区分，语言表达直接明了，富有生活感和共鸣度。排版层级清晰，标题-主体内容的二级结构。",
  "Visual_Element_Style": "主体装饰角色为3D渲染的卡通少女形象，发型特点鲜明，表情传达疲惫或困惑情绪。场景化呈现采用工作/学习桌面环境，包含电脑、书本、文具等实物元素，真实感与卡通风格结合。装饰元素简约实用，以实际办公/学习用品为主。视觉元素位置布局合理，人物居中偏下，桌面元素环绕周围，形成完整工作场景。概念可视化通过人物表情和姿态直观表达主题情绪，与标题文字形成呼应。"
}
 * 
 */
export class JsonFormatterResponseDto {
  @ApiProperty({
    description: '格式化后的JSON数据',
    example: `{
  "product_name": "智能手表X1",
  "price": 1299,
  "currency": "CNY",
  "features": [
    "心率监测",
    "血氧检测",
    "睡眠分析",
    "运动追踪",
    "消息提醒"
  ],
  "water_resistance": "IP68",
  "battery_life": "7天",
  "available_colors": [
    "黑色",
    "银色",
    "金色"
  ]
}`,
  })
  result: string;

  @ApiPropertyOptional({
    description: '原始API响应数据',
    type: 'object',
  })
  rawResponse?: any;
}
